package practice09;


public class Klass {
    //写一个Klass类，有number属性还有一个leader属性。但是leader属性不在构造器里。

    //如果Klass的Leader是Tom，那么Tom调用introduce的方法就要返回：
    //>My name is Tom. I am 21 years old. I am a Student. I am Leader of Class 2.
    //如果没有就继续返回旧的字符串。


    //相应的调用Student的introduce方法也只会返回旧的字符串。
    private Integer number;
    private Student leader;

    public Klass(Integer number) {
        this.number = number;
    }

    public void setLeader(Student leader) {
        this.leader = leader;
    }

    public Student getLeader() {
        return leader;
    }

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    public String getDisplayName() {
        return "Class " + number;
    }

    //Klass有一个assignLeader方法，接收一个Student实例。意为将一名学生设置为该Klass的班长。
    //如果学生没有加入该班级，那么在调用assignLeader方法的时候，不会assign成功，会打印一句话：
    //>It is not one of us.
    public void assignLeader(Student student) {
        if (student.getKlass().equals(this)) {
            this.leader = student;
        } else {
            System.out.println("It is not one of us.");
        }
    }

    //Klass还有一个appendMember方法，接受一个Student实例。意味将一名学生加入该班级。
    public void appendMember(Student student) {
        student.setKlass(this);
    }


}
